package com.service;

import com.pojo.Notifications;
import com.pojo.Result;
import com.vo.NotificationVO;

import java.util.List;

public interface NotificationsService {
    // 保存通知到数据库
    Result<Void> createNotification(Notifications notification);

    // 更新通知
    Result<Void> updateNotification(Notifications notification);

    // 删除通知
    Result<Void> deleteNotification(Integer id);

    // 根据ID获取通知
    Result<Notifications> getNotificationById(Integer id);

    // 根据用户ID获取所有通知
    Result<List<Notifications>> getNotificationsByUserId(Integer userId);

    // 获取未读通知
    Result<List<Notifications>> getUnreadNotifications(Integer userId);

    // 标记单个通知为已读
    Result<Void> markNotificationAsRead(Integer id);

    // 标记所有通知为已读
    Result<Void> markAllNotificationsAsRead(Integer userId);

    // 新增：根据 Notifications 实体转换成 VO（用于 WebSocket 推送）
    Result<NotificationVO> getNotificationVO(Notifications notification);
}